package com.lili.collection.core.runner;

import com.lili.collection.core.context.PipeContext;
import com.lili.collection.core.event.StageEventListenerRegister;
import com.lili.collection.core.runner.result.RunnerResult;
import com.lili.collection.core.support.PreHandleSupport;
import com.lili.collection.core.support.RunnerLifeSupport;

/**
 * 阶段Runner
 *
 * @author lili
 * @date 2023/3/7 1:47
 * @description PipeRunner
 */
public interface StageRunner extends RunnerLifeSupport, PreHandleSupport, StageEventListenerRegister {

    StageType getStageType();

    PipeContext getPipeContext();

    default RunnerResult getRunnerResult(){return null;}

    enum StageType {
        Input,
        Output,
        Process,
        ProcessGroup,
    }
}
